void AjouterVoyageur()
{
    system("cls");
    int type;
    string nom, prenom, typeStr;
    cout<<"  ###########################################################################"<<endl;
    cout<<"  ##                                                                       ##"<<endl;
    cout<<"  ##                  Bienvenue dans le logiciel de gestion                ##"<<endl;
    cout<<"  ##                      de le compagnie maritime AM.LB                   ##"<<endl;
    cout<<"  ##                                                                       ##"<<endl;
    cout<<"  ###########################################################################"<<endl;
    cout<<"  #                                                                         #"<<endl;
    cout<<"  #                    AJOUT D'UN VOYAGEUR                                  #"<<endl;
    cout<<"  #                                                                         #"<<endl;
    cout<<"  #  Numero : "<<nbVoyageurs+1<<endl;
    cout<<"  #     Nom : ";cin>>nom;
    cout<<"  #  Prenom : ";cin>>prenom;
    cout<<"  #                                                                         #"<<endl;
    cout<<"  # Type du voyageur --> Normal[1],Secondaire[2],Insulaire[3]               #"<<endl;
    cout<<"  # -------> Type : ";cin>>typeStr;
    cout<<"  #"<<endl;
    cout<<"  #  CREATION DU VOYAGEUR..."<<endl;

    type = atoi(typeStr.c_str());

    Voyageur * cap = new Voyageur(nbVoyageurs+1,nom,prenom,type);
    nbVoyageurs = nbVoyageurs+1;
    listVoyageurs.push_back(cap);
    //listVoyageurs.sort();
}

void ModifierVoyageur()
{
    int num, type;
    bool estListe = false;
    string nom, prenom, typeStr;

    system("cls");
    cout<<"  ###########################################################################"<<endl;
    cout<<"  ##                                                                       ##"<<endl;
    cout<<"  ##                  Bienvenue dans le logiciel de gestion                ##"<<endl;
    cout<<"  ##                      de le compagnie maritime AM.LB                   ##"<<endl;
    cout<<"  ##                                                                       ##"<<endl;
    cout<<"  ###########################################################################"<<endl;
    cout<<"  #                                                                         #"<<endl;
    cout<<"  #                 AFFICHAGE DES VOYAGEURS                                #"<<endl;
    cout<<"  #                                                                         #"<<endl;

    list<Voyageur*>::iterator it;
    for(it = listVoyageurs.begin();it != listVoyageurs.end();it++)
    {
        cout<<"  #  "<<(*it)->getIdPersonne()<<" : "<<(*it)->getNom()<<" "<<(*it)->getPrenom()<<endl;
    }
    cout<<"  #    Entrez le numero du voyageur a modifier : ";cin>>num;
    for(it = listVoyageurs.begin();it != listVoyageurs.end();it++)
    {
        if((*it)->getIdPersonne() == num)
        {
            estListe = true;
            cout<<"  #  Modification de "<<(*it)->getNom()<<" "<<(*it)->getPrenom()<<"("<<(*it)->getIdPersonne()<<")";
            cout<<endl<<"  #"<<endl;
            cout<<"  #     Nouveau nom : ";cin>>nom;
            cout<<"  #  Nouveau prenom : ";cin>>prenom;
            cout<<"  #  Type [1:N,2:S,3:I] : ";cin>>typeStr;
            (*it)->setNom(nom);
            (*it)->setPrenom(prenom);
            type = atoi(typeStr.c_str());
            (*it)->setIdType(type);
        }
    }
    if(!estListe)
    {
        cout<<"  #  Numero inconnu ! "<<endl;
    }
}

void SupprimerVoyageur()
{
    int num;
    bool estListe = false;
    list<Voyageur*> listAlt ;

    system("cls");
    cout<<"  ###########################################################################"<<endl;
    cout<<"  ##                                                                       ##"<<endl;
    cout<<"  ##                  Bienvenue dans le logiciel de gestion                ##"<<endl;
    cout<<"  ##                      de le compagnie maritime AM.LB                   ##"<<endl;
    cout<<"  ##                                                                       ##"<<endl;
    cout<<"  ###########################################################################"<<endl;
    cout<<"  #                                                                         #"<<endl;
    cout<<"  #                 SUPPRESSION DES VOYAGEURS                               #"<<endl;
    cout<<"  #                                                                         #"<<endl;

    list<Voyageur*>::iterator it;
    for(it = listVoyageurs.begin();it != listVoyageurs.end();it++)
    {
        cout<<"  #  "<<(*it)->getIdPersonne()<<" : "<<(*it)->getNom()<<" "<<(*it)->getPrenom()<<endl;
    }
    cout<<"  #    Entrez le numero du voyageur a supprimer : ";cin>>num;
    for(it = listVoyageurs.begin();it != listVoyageurs.end();it++)
    {
        if((*it)->getIdPersonne() == num)
        {
            estListe = true;

        }
        else
        {
            listAlt.push_back(*it);
        }
    }
    cout<<"3";
    if(!estListe)
    {
        cout<<"  #  Numero inconnu ! "<<endl;
    }
    else
    {
        listVoyageurs.erase(listVoyageurs.begin(),listVoyageurs.end());
        listVoyageurs = listAlt ;
    }
}

void AfficherVoyageurs()
{
    string choix;
    bool trouve = false;

    do {
        system("cls");
        cout<<"  ###########################################################################"<<endl;
        cout<<"  ##                                                                       ##"<<endl;
        cout<<"  ##                  Bienvenue dans le logiciel de gestion                ##"<<endl;
        cout<<"  ##                      de le compagnie maritime AM.LB                   ##"<<endl;
        cout<<"  ##                                                                       ##"<<endl;
        cout<<"  ###########################################################################"<<endl;
        cout<<"  #                                                                         #"<<endl;
        cout<<"  #                        AFFICHAGE DES VOYAGEURS                          #"<<endl;
        cout<<"  #                                                                         #"<<endl;

        if(listVoyageurs.empty())
        {
            cout<<"  #                La liste de voyageur est vide !                        #"<<endl;
            cout<<"  #                                                                         #"<<endl;
            cout<<"  ###########################################################################"<<endl;
        }
        else
        {
            list<Voyageur*>::iterator it;
            for(it = listVoyageurs.begin();it != listVoyageurs.end();it++)
            {
                cout<<"  #  "<<(*it)->getNom()<<" "<<(*it)->getPrenom()<<" ["<<(*it)->getIdPersonne()<<"] "<<endl;
            }
            cout<<"  #                                                                         #"<<endl;
            cout<<"  #                                                                         #"<<endl;
            cout<<"  # ----------------------------------------------------------------------- #"<<endl;
            cout<<"  #    Pour afficher un element particulier, saisissez son numero. Sinon,   #"<<endl;
            cout<<"  #    saisissez 0 [zero] pour revenir au menu precedent.                   #"<<endl;
            cout<<"  # ----------------------------------------------------------------------- #"<<endl;
            cout<<"  #                                                                         #"<<endl;
            cout<<"  #    VOTRE CHOIX : ";cin>>choix;
            cout<<"  #                                                                         #"<<endl;
            trouve = false;
            if(choix != "0")
            {
                for(it=listVoyageurs.begin();it!=listVoyageurs.end();it++)
                {
                    if((*it)->getIdPersonne()==atoi(choix.c_str()))
                    {
                        system("cls");
                        cout<<"  ###########################################################################"<<endl;
                        cout<<"  ##                                                                       ##"<<endl;
                        cout<<"  ##                  Bienvenue dans le logiciel de gestion                ##"<<endl;
                        cout<<"  ##                      de le compagnie maritime AM.LB                   ##"<<endl;
                        cout<<"  ##                                                                       ##"<<endl;
                        cout<<"  ###########################################################################"<<endl;
                        cout<<"  #                                                                         #"<<endl;
                        // AFFICHAGE
                        cout<<"  #  Voyageur numero "<<(*it)->getIdPersonne()<<endl;
                        cout<<"  #    "<<(*it)->getNom()<<" "<<(*it)->getPrenom()<<endl;
                        cout<<"  # "<<endl;
                        trouve = true;
                    }
                }
                if(!trouve)
                {
                    // NUMERO INCONNU
                    cout<<"  #  NUMERO INCONNU"<<endl;
                }
                cout<<"  #  ";system("PAUSE");
            }
        }
        cout<<"  #  ";
    }
    while(choix != "0");
}
